﻿// owner 蒋家伟

#pragma once
#include "DataSchema_home.h"

namespace jsdk
{
    class IElement;
}

namespace jsdk
{
    // 类别描述 : 外部数据，所有业务数据都存储在外部数据中，并挂载到Element对象上
    class DATASCHEMA_EXPORT IExternalData
    {
        DEFINE_DRIVER_BASE(IExternalData)
    public:
        virtual ~IExternalData() {}
#pragma region 通用
        /// \ brief 获取当前外部数据所属的Element对象
        virtual const IElement* getOwnerElement() const = 0;
        virtual IElement* getOwnerElement() = 0;

        /// \ brief 设置当前对象所属的Element
        /// \ in pElement 当前外部数据所属的Element
        virtual void setOwnerElement(IElement* pElement) = 0;
#pragma region 通用

        /// \ brief 汇报拷贝策略
    };
}
